package com.tgsoft.common.core.config.configmmbak;


////解决object转int出现小数点和long输出科学计数法
//public class MapTypeAdapter extends TypeAdapter<Object> {
//
//    @Override
//    public Object read(JsonReader in) throws IOException {
//        JsonToken token = in.peek();
//        switch (token) {
//            case BEGIN_ARRAY:
//                List<Object> list = new ArrayList<Object>();
//                in.beginArray();
//                while (in.hasNext()) {
//                    list.add(read(in));
//                }
//                in.endArray();
//                return list;
//
//
//
//            case STRING:
//                return in.nextString();
//
//            case NUMBER:
//                /**
//                 * 改写数字的处理逻辑，将数字值分为整型与浮点型。
//                 */
//                double dbNum = in.nextDouble();
//
//                // 数字超过long的最大值，返回浮点类型
//                if (dbNum > Long.MAX_VALUE) {
//                    return dbNum;
//                }
//
//                // 判断数字是否为整数值
//                long lngNum = (long) dbNum;
//                if (dbNum == lngNum) {
//                    return lngNum;
//                } else {
//                    return dbNum;
//                }
//
//            case BOOLEAN:
//                return in.nextBoolean();
//
//            case NULL:
//                in.nextNull();
//                return null;
//
//            default:
//                throw new IllegalStateException();
//        }
//    }
//
//    @Override
//    public void write(JsonWriter out, Object value) throws IOException {
//        // 序列化无需实现
//    }
//}


//
//
//
//public final class K3CloudObjectTypeAdapter extends TypeAdapter<Object> {
//    public static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() {
//        public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
//            return type.getRawType() == Object.class ? new K3CloudObjectTypeAdapter(gson) : null;
//        }
//    };
//    private final Gson gson;
//
//    public K3CloudObjectTypeAdapter(Gson gson) {
//        this.gson = gson;
//    }
//
//    public Object read(JsonReader in) throws IOException {
//        JsonToken token = in.peek();
//        switch (token) {
//            case BEGIN_ARRAY:
//                List<Object> list = new ArrayList();
//                in.beginArray();
//
//                while(in.hasNext()) {
//                    list.add(this.read(in));
//                }
//
//                in.endArray();
//                return list;
//            case BEGIN_OBJECT:
//                Map<String, Object> map = new LinkedTreeMap();
//                in.beginObject();
//
//                while(in.hasNext()) {
//                    map.put(in.nextName(), this.read(in));
//                }
//
//                in.endObject();
//                return map;
//            case STRING:
//                return in.nextString();
//            case NUMBER:
//                String s = in.nextString();
//                if (s.contains(".")) {
//                    return Double.valueOf(s);
//                } else {
//                    try {
//                        return Integer.valueOf(s);
//                    } catch (Exception var7) {
//                        return Long.valueOf(s);
//                    }
//                }
//            case BOOLEAN:
//                return in.nextBoolean();
//            case NULL:
//                in.nextNull();
//                return null;
//            default:
//                throw new IllegalStateException();
//        }
//    }
//
//    public void write(JsonWriter out, Object value) throws IOException {
//        if (value == null) {
//            out.nullValue();
//        } else {
//            TypeAdapter<Object> typeAdapter = this.gson.getAdapter(value.getClass());
//            if (typeAdapter instanceof ObjectTypeAdapter) {
//                out.beginObject();
//                out.endObject();
//            } else {
//                typeAdapter.write(out, value);
//            }
//        }
//
//    }
//}
